import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import styleImport from 'vite-plugin-style-import'
import cesium from 'vite-plugin-cesium'

import path from 'path'


// 中文配置文档 https://cn.vitejs.dev/config/ 最全面的配置随你定
export default defineConfig({
  plugins: [
    vue(),
    cesium(),
    styleImport({ // https://github.com/anncwb/vite-plugin-style-import/blob/main/README.zh_CN.md
      libs: [
        {
          libraryName: 'element-plus',
          esModule: true,
          ensureStyleFile: true, // 忽略文件是否存在, 导入不存在的CSS文件时防止错误
          resolveStyle: (name) => {
            return `element-plus/lib/theme-chalk/${name}.css`
          },
          resolveComponent: (name) => {
            return `element-plus/lib/${name}`
          },
        }
      ]
    })
  ],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src') // 如果报错__dirname找不到 安装 @types/node 
    }
  },
  css: {
    preprocessorOptions: {
      scss: { // 配置全局混入scss
        additionalData: `@import "./src/assets/styles/common/mixin.scss";`
      }
    }
  },
  // clearScreen: false, // 设为 false 可以避免 Vite 清屏而错过在终端中打印某些关键信息
  // 引入第三方的配置
  optimizeDeps: {
    // include: ["moment", "echarts", "axios", "mockjs"]
    include: [
      "element-plus/lib/locale/lang/zh-cn"
    ]
  },
  build: {
    brotliSize: false, // 启用/禁用 brotli 压缩大小报告。压缩大型输出文件可能会很慢，因此禁用该功能可能会提高大型项目的构建性能。
    chunkSizeWarningLimit: 1024, // chunk 大小警告的限制（以 kbs 为单位）
  },
  // 生产环境路径，类似webpack的assetsPath
  // base: './',
  // 打包后目录,默认dist
  // outDir: 'www',
  // 服务端渲染
  // ssr: false,
  server: {
    port: 8888, // 启用端口
    open: false, // 是否自动打开浏览器(默认false)
    proxy: {
      '/api': ''
    },
    // 是否开启 https
    // https: false,
    cors: true, // 为开发服务器配置 CORS。默认启用并允许任何源，传递一个 选项对象 来调整行为或设为 false 表示禁用。
    hmr: {
      overlay: false
    }
    // hmr: {
    //   host: '127.0.0.1',
    //   port: 3000
    // }
  }
})
